package org.wdcode.web.mina.need;

import java.util.List;

import org.apache.mina.core.service.IoHandler;
import org.wdcode.web.mina.filter.MinaIoFilter;

/**
 * 指定Mina需要用到的类 抽象实现
 * @author WD
 * @since JDK6
 * @version 1.0 2010-08-03
 */
public class BaseMinaNeed implements MinaNeed {
	// 监听端口
	private int					port;
	// IO处理器
	private IoHandler			ioHandler;
	// IO过滤器
	private List<MinaIoFilter>	ioFilters;

	/**
	 * 构造方法
	 */
	public BaseMinaNeed() {
		init();
	}

	/**
	 * 获得IO处理器
	 * @return IO处理器
	 */
	public final IoHandler getIoHandler() {
		return ioHandler;
	}

	/**
	 * 设置IO处理器
	 * @param ioHandler IO处理器
	 */
	public final void setIoHandler(IoHandler ioHandler) {
		this.ioHandler = ioHandler;
	}

	/**
	 * 获得监听端口
	 * @return 监听端口
	 */
	public final int getPort() {
		return port;
	}

	/**
	 * 设置监听端口
	 * @param port 监听端口
	 */
	public final void setPort(int port) {
		this.port = port;
	}

	/**
	 * 获得IO过滤器
	 * @return IO过滤器
	 */
	public final List<MinaIoFilter> getIoFilters() {
		return ioFilters;
	}

	/**
	 * 设置IO过滤器
	 * @param ioFilters IO过滤器
	 */
	public final void setIoFilters(List<MinaIoFilter> ioFilters) {
		this.ioFilters = ioFilters;
	}

	/**
	 * 删除IO过滤器
	 * @param name IO过滤器名称
	 */
	public final void removeIoFilter(String name) {
		ioFilters.remove(name);
	}

	/**
	 * 添加IO过滤器
	 * @param name IO过滤器名称
	 * @param filter IO过滤器
	 */
	public final void addIoFilter(MinaIoFilter filter) {
		ioFilters.add(filter);
	}

	/**
	 * 初始化方法
	 */
	protected void init() {}
}
